import YX_ArchiBald from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_ArchiBald';
import ClassAbilityManagerBase from './base/ClassAbilityManagerBase';
import YX_ArrowRain from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_ArrowRain';
import YX_LongerGun from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_LongerGun';
import YX_PowerfulAttack from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_PowerfulAttack';
import YX_SniperAttack from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_SniperAttack';
import YX_SplitShoot from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_SplitShoot';
import YX_UrgencyAttack from 'code/Scripts/Abilities/ClassAbility/Ranger/YX_UrgencyAttack';

declare global {
    var YXAbilities: RangerAbilityManager;
}

export default class RangerAbilityManager extends ClassAbilityManagerBase {
    YX_ArchiBald: YX_ArchiBald;
    YX_ArrowRain: YX_ArrowRain;
    YX_LongerGun: YX_LongerGun;
    YX_PowerfulAttack: YX_PowerfulAttack;
    YX_SniperAttack: YX_SniperAttack;
    YX_SplitShoot: YX_SplitShoot;
    YX_UrgencyAttack: YX_UrgencyAttack;
    constructor() {
        super();
        YXAbilities = this;

        this.YX_ArchiBald = new YX_ArchiBald();
        this._abilities.set(this.YX_ArchiBald.id, this.YX_ArchiBald);

        this.YX_ArrowRain = new YX_ArrowRain();
        this._abilities.set(this.YX_ArrowRain.id, this.YX_ArrowRain);

        this.YX_LongerGun = new YX_LongerGun();
        this._abilities.set(this.YX_LongerGun.id, this.YX_LongerGun);

        this.YX_PowerfulAttack = new YX_PowerfulAttack();
        this._abilities.set(this.YX_PowerfulAttack.id, this.YX_PowerfulAttack);

        this.YX_SniperAttack = new YX_SniperAttack();
        this._abilities.set(this.YX_SniperAttack.id, this.YX_SniperAttack);

        this.YX_SplitShoot = new YX_SplitShoot();
        this._abilities.set(this.YX_SplitShoot.id, this.YX_SplitShoot);

        this.YX_UrgencyAttack = new YX_UrgencyAttack();
        this._abilities.set(this.YX_UrgencyAttack.id, this.YX_UrgencyAttack);
    }
}
